package model;

import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author GRG Interfaccia Cliente atta a gestire tutti i metodi relativi al
 *         cliente
 */
public interface Cliente {

	public boolean sogliaCliente(int idCliente) throws SQLException;

	/*
	 * controlla se numCopiePreseInPrestito e' < 3 , false altrimenti
	 */

	public String getMail(int idCliente) throws SQLException;

	/*
	 * ritorna la mail del cliente l'ho modificato inserendo anche idCliente &
	 * idLibro altrimenti quale libro e di chi lo modifico?
	 */

	public String getPassword(int idCliente) throws SQLException;

	/*
	 * ritorna la password dato un idCliente
	 */

	public void setNumCopieInPrestito(int numCopie, int idCliente)
			throws SQLException;

	/*
	 * modifica l'intero che memorizza il numero di copie prese in prestito dal
	 * singolo cliente
	 */

	public void aggiungiCliente(String nome, String cognome, String mail,
			String password) throws SQLException;

	/*
	 * aggiunge Cliente in clienti (la password la inserisce la bibliotecaria la
	 * prima volta)
	 */

	public void rimuoviCliente(int idCliente) throws SQLException;

	/*
	 * rimuove un cliente con chiave idCliente se presente
	 */

	/*
	 * restituisce l'idCliente a partire dalle credenziali
	 */

	public void setMail(String mail, int idCliente) throws SQLException;

	/*
	 * cambia la mail di idCliente
	 */

	public ResultSet mioStorico(String order, int idAccesso)
			throws SQLException;

	public ResultSet cercaCliente(String[] parametri, String[] nomiParametri)
			throws SQLException;

	public int copieCliente(int idCliente) throws SQLException;

	public void incrementaCopie(int idCliente) throws SQLException;

	public void decrementaCopie(long isbn, int idCliente) throws SQLException;

	public String[] getCredenziali(int idCliente) throws SQLException;

	public int ultimoIdCliente() throws SQLException;

	public ResultSet storicoClienti(String order) throws SQLException;

	public ResultSet daRestituire() throws SQLException;

	public ResultSet storicoClienti(int numCopie) throws SQLException;

	public String getGenerePreferito(int idCliente) throws SQLException;

	public boolean esisteCliente(int idCliente) throws SQLException;
}
